home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swagd_f.zip / EGAVGA.SWG / 0094_High Intensity Background.pas < prev    next >
Pascal/Delphi Source File  |  1994-01-27  |  5KB  |  129 lines

  1. UNIT Lite;
  2. {***************************************************************************}
  3. {*                                                                         *}
  4. {*  Unit Lite - Routines to produce high intensity backgrounds             *}
  5. {*                                                                         *}
  6. {*                         AUTHOR:  Darryl Friesen                         *}
  7. {*                        CREATED:  01-JUN-1991                            *}
  8. {*                  LAST MODIFIED:  06-JAN-1992                            *}
  9. {*                CURRENT VERSION:  Version 1.0.1                          *}
  10. {*                 COMPILED USING:  Turbo Pascal 6.0                       *}
  11. {*                                                                         *}
  12. {*                                                                         *}
  13. {*  UNIT DEPENDANCIES:                                                     *}
  14. {*                                                                         *}
  15. {*           INTERFACE:  [none]                                            *}
  16. {*      IMPLEMENTATION:  DOS                                               *}
  17. {*                                                                         *}
  18. {***************************************************************************}
  19. {*                                                                         *}
  20. {*  REVISION HISTORY                                                       *}
  21. {*  ----------------                                                       *}
  22. {*  01-JUN-1991  - Creation of VERSION 1.00                                *}
  23. {*  06-JAN-1992  - Version 1.0.1                                           *}
  24. {*                   Fixed a bug in the BlinkOn routine.  On a VGA machine *}
  25. {*                   the blink state was turned off instead of on.         *}
  26. {*                                                                         *}
  27. {***************************************************************************}
  28.  
  29. {=========================================================================}
  30. INTERFACE
  31. {=========================================================================}
  32.  
  33. Procedure BlinkOff;
  34. Procedure BlinkOn;
  35. Function  EGA: Boolean;
  36.  
  37.  
  38. {=========================================================================}
  39. IMPLEMENTATION
  40. {=========================================================================}
  41.  
  42. USES DOS;
  43.  
  44.  
  45. {================================================================}
  46. PROCEDURE SetBlinkState(State : BOOLEAN);
  47. {================================================================}
  48. {================================================================}
  49.  
  50. VAR
  51.   ModeReg     : BYTE;
  52.   ModeRegPort : WORD;
  53.  
  54. Begin
  55.    INLINE($FA); { CLI }
  56.    ModeRegPort:=MEMW[$0040:$0063]+4;
  57.    ModeReg:=MEM[$0040:$0065];
  58.    If State Then
  59.      ModeReg:=ModeReg OR $20
  60.    Else
  61.      ModeReg:=ModeReg AND $DF;
  62.  
  63.    Port[ModeRegPort] := ModeReg;
  64.    MEM[$0040:$0065]:= ModeReg;
  65.    INLINE($FB) { STI }
  66. END;
  67.  
  68.  
  69. {================================================================}
  70. FUNCTION EGA : BOOLEAN;
  71. {================================================================}
  72. {================================================================}
  73.  
  74. VAR
  75.   Regs : Registers;
  76.  
  77. Begin
  78.   Regs.AH:=$12;
  79.   Regs.BX:=$FF10;
  80.   INTR( $10, Regs );
  81.   EGA := (Regs.BX AND $FEFC=0)
  82. End;
  83.  
  84.  
  85. {================================================================}
  86. PROCEDURE SetEGABlinkState(State : BOOLEAN);
  87. {================================================================}
  88. {================================================================}
  89.  
  90. VAR
  91.   Regs: Registers;
  92.  
  93. Begin
  94.   Regs.AX := $1003;
  95.   Regs.BL := ORD(State);
  96.   INTR( $10, Regs )
  97. End;
  98.  
  99.  
  100. {================================================================}
  101. PROCEDURE BlinkOn;
  102. {================================================================}
  103. {================================================================}
  104.  
  105. Begin
  106.   If EGA Then
  107.     SetEGABlinkState(TRUE)
  108.   Else
  109.     SetBlinkState(TRUE)
  110. End;
  111.  
  112.  
  113. {================================================================}
  114. PROCEDURE BlinkOff;
  115. {================================================================}
  116. {================================================================}
  117.  
  118. Begin
  119.   If EGA Then
  120.     SetEGABlinkState(FALSE)
  121.   Else
  122.     SetBlinkState(FALSE)
  123. End;
  124.  
  125.  
  126. {=========================================================================}
  127.  
  128. End.
  129.